package org.x.user.query;

import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 审计日志查询对象
 *
 * @author 夏包包
 * @date 2025-03-08 13:39:03
 */
@Data
public class SysLogsQuery {

    /**
     * 日志ID，必填
     */
    @NotNull(groups = QueryGroup.class, message = "日志ID不能为空")
    @Schema(description = "日志ID，必填")
    private String logId;

    /**
     * 租户ID，必填
     */
    @NotNull(groups = QueryGroup.class, message = "租户ID不能为空")
    @Schema(description = "租户ID，必填")
    private String tenantId;

    /**
     * 操作用户ID，必填
     */
    @NotNull(groups = QueryGroup.class, message = "操作用户ID不能为空")
    @Schema(description = "操作用户ID，必填")
    private String userId;

    /**
     * 日志级别，必填
     */
    @NotNull(groups = QueryGroup.class, message = "日志级别不能为空")
    @Schema(description = "日志级别，必填")
    private String logLevel;

    /**
     * 开始时间，必填
     */
    @NotNull(groups = QueryGroup.class, message = "开始时间不能为空")
    @Schema(description = "开始时间，必填")
    private Date startTime;

    /**
     * 结束时间，必填
     */
    @NotNull(groups = QueryGroup.class, message = "结束时间不能为空")
    @Schema(description = "结束时间，必填")
    private Date endTime;

    /**
     * 页码，必填
     */
    @NotNull(groups = QueryGroup.class, message = "页码不能为空")
    @Schema(description = "页码，必填")
    private Long pageIndex;

    /**
     * 每页大小，必填
     */
    @NotNull(groups = QueryGroup.class, message = "每页大小不能为空")
    @Schema(description = "每页大小，必填")
    private Long pageSize;
}
